perm filename LSPMSC.MMO[PAT,LMM] blob sn#058038 filedate 1973-08-14 generic text, type T, neo UTF8
1) WOULD LIKE PRETTYCOMS AND EDITMACROS TO BE ABLE TO TAKE ARGUMENTS
OF THE FORM (COM (A B . C) SUBSTITUTE EXPRESSION) MEANING USE (CAR
ARGS) FOR A, (CADR ARGS) FOR B, AND (CDDR ARGS) FOR C. THEY ALL USE
SUBPAIR.... COULD BE DONE WITH JUST CHANGING SUBPAIR (SHUDDER).
MIGHT BE A GOOD IDEA FOR SUBSTITUTION MACROS AS WELL..... 

2) TAILP (D (A B C . D)) RETURNS NIL.... WOULD LIKE TO CHANGE THIS &
WILL IF YOU HAVE NO OBJECTIONS, SO THAT (-- !==FOO) CAN USE TAILP
AND BE CORRECT EVEN IF FOO IS AN ATOM; ALSO, TAILP(NIL (A B C D)) IS
NIL..... I CAN GET AROUND THIS BY DEFINEING A "NEW" TAILP WHICH
RETURNS T , OR TRANSLATING (-- !==FOO) TO 
(COND((LISTP FOO)(TAILP FOO var)) (T (EQ FOO (CDR (LAST var]

3) NTH((A . B) 2) = NTH((A . B) 3) = NTH((A . B) 1000) ......
   NOT SURE WHAT IT SHOULD BE, BUT THIS DOESN'T SEEM RIGHT 
   (AND MAKES MANY PATTERN MATCH THINGS WRONG IF THE LIST
    MATCHED AGAINST ENDS IN AN ATOM)


4)SUGGESTIONS FOR FORS:  AT LEAST FOR CLISP, MY FEELING IS THAT (1)
IT IS GENERALLY NICE TO ALLOW ARBITRARY SPECIFICATION OF "WHAT TO DO"
WITHIN THE FOR; HOWEVER, THERE ARE A FEW THINGS THAT ARE MOST COMMON
(LIKE COLLECT AND JOIN) THAT IT IS NICE TO HAVE A SPECIAL SYNTAX
FOR:
  I PROPOSE:
     SUM
     PRODUCT
     MAXIMUM
     MINIMUM
     RCOLLECT  -- USES CONS INSTEAD OF NCONC1 -- MORE EFFICENT
     THEN     (FOR X IN L THEN (ATOM X)) IS (EVERY L 'ATOM)
              (FOR I FROM 1 TO 10 WHEN I}=5 THEN (FOO I))
		 IS LOGICALLY EQUIVALENT TO
			(EVERY '(1 2 3 4 6 7 8 9 10) 'FOO)
		THIS WILL WORK LIKE AND, HOWEVER, IN THAT IT WILL
		RETURN NIL IF ANY WORKS AND OTHERWISE RETURN
		THE LAST VALUE.

      THEREIS    WORKS LIKE SOME, OR OR;  STOPS WHEN NON-NIL,
		RETURNING THE NON-NIL VALUE

THE "THEN", I THINK, DOESN'T CONFLICT, AND THE "THEREIS" IS THE BEST
WORD I COULD THINK OF THAT WOULD READ NATURALLY

	(THEREIS ATOM FOR X IN L)
	(SUM SQRT FOR I FROM 1 TO 10)


5)  COLLECT AND JOIN SHOULD USE TCONC AND LCONC WHEN POSSIBLE

6)  EITHER IMPLEMENT NESTED FORS, OR GENERATE BETTER CODE FOR:

      (FOR J FROM 1 TO 10 JOIN
         (FOR I FROM 1 TO J COLLECT
	    (FOO I J]


7)  USE PRINTDEF INSTEAD OF PRINT IN THE "translation:" PART OF DWIMIFY



8) CALLING (FNTH '(A B C D E) 3.4) GIVES (D E) 
   BUT DEFINE(((FOO(L N)(FNTH L N]
       COMPILE(FOO]

    AND (FOO '(A B C D E) 3.4) RETURNS NIL

I THING THE FORMER SHOULD ERROR, JUST LIKE WITH (FNTH (A . B) ....)
     OR AT LEAST THAT THEY DON'T DO DIFFERENT THINGS


9) THE WORDS "ON" "AS" "IS" "FOR" ARE CAPITOLIZED IN COMMENTS NOW &
 SHOULDN'T BE -- THEY ARE MOST OFTEN FOUND IN TEXT AND NOT IN EXAMPLES
 AND BESIDES, THEY ARE LOWERCASED IN THE CODE.


10) WHEN YOU'RE SITTING ON AN ATOM AND DO A RC, IT DOES THE RECOGNITION
OK, AND THEN SAYS Can't